package com.tfjybj.itoo.exam.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import java.io.Serializable;

/**
 * TrainingProgramsModel
 * 培养计划表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 10:35:56
 */
@ApiModel(value = "TrainingProgramsModel:培养计划表")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class TrainingProgramsModel implements Serializable {

    //region 模板逆向生产来自TrainingProgramsEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "trainingPrograms主键")
    @Column(name = "id")
    private String id;
    /**
     * 课程_id
     */
    @ApiModelProperty(value = "课程_id", required = true)
    private String courseId;

    /**
     * 专业_id
     */
    @ApiModelProperty(value = "专业_id", required = true)
    private String professionId;

    /**
     * 学年学期_id（字典）
     */
    @ApiModelProperty(value = "学年学期_id（字典）", required = true)
    private String semesterId;

    /**
     * 课程类型_id（1-专业必修，2-公共必修，3-专业选修，4-公共选修）
     */
    @ApiModelProperty(value = "课程类型_id（1-专业必修，2-公共必修，3-专业选修，4-公共选修）")
    private String courseTypeId;

    /**
     * 课程类别（字典:1-理论课、2-实践课、3-理论实践课）
     */
    @ApiModelProperty(value = " 课程类别（字典:1-理论课、2-实践课、3-理论实践课）")
    private String courseCategoryId;

    /**
     * 考核形式（字典:1-考查、2-考试）
     */
    @ApiModelProperty(value = " 考核形式（字典:1-考查、2-考试）")
    private String examinationFormId;

    /**
     * 是否排课(0/1 否/是)
     */
    @ApiModelProperty(value = "是否排课(0/1 否/是)", example = "0")
    private Integer isArrangement;

    /**
     * 单双周(0/1 单/双)
     */
    @ApiModelProperty(value = "单双周(0/1 单/双)", example = "0")
    private Integer oddWeekOrNot;

    /**
     * 年级
     */
    @ApiModelProperty(value = "年级")
    private String grade;

    /**
     * 理论课学时
     */
    @ApiModelProperty(value = "理论课学时")
    private String theoryClassHour;

    /**
     * 实践课学时
     */
    @ApiModelProperty(value = "实践课学时")
    private String practiceClassHour;

    /**
     * 课程分数
     */
    @ApiModelProperty(value = "课程分数")
    private Double courseScore;

    /**
     * 是否启用（0/1 否/是）
     */
    @ApiModelProperty(value = "是否启用（0/1 否/是） ", example = "0")
    private Integer isUse;

    //endregion

    /* *****************************以下是非模板生成的内容************************************ */
    /**
     * 课程名称
     */
    @ApiModelProperty(value = "课程名称")
    @Column(name = "courseName")
    private String courseName;
    /**
     * 课程代码
     */
    @ApiModelProperty(value = "课程代码")
    @Column(name = "courseCode")
    private String courseCode;
    /**
     * 课程名称
     */
    @ApiModelProperty(value = "课程名称", required = true)
    @Column(name = "name")
    private String name;
    /**
     * 课程代码
     */
    @ApiModelProperty(value = "课程代码", required = true)
    @Column(name = "code")
    private String code;
    /**
     * 课程类别（1-理论课、2-实践课、3-理论实践课）
     */
    @ApiModelProperty(value = "课程类别（1-理论课、2-实践课、3-理论实践课）")
    private String courseCategory;

    /**
     * 课程类型（1-专业必修，2-公共必修，3-专业选修，4-公共选修）
     */
    @ApiModelProperty(value = "课程类型（1-专业必修，2-公共必修，3-专业选修，4-公共选修）")
    private String courseType;
}
